<?php

namespace app\admin\model\integral;

use think\Model;

class Bookstore extends Model
{
    // 表名
    protected $name = 'integral_bookstore';
    
    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    
    // 追加属性
    protected $append = [
        'status_text',
    ];


    public function getStatusList()
    {
        return ['1' => __('铺货'),'2' => __('现款')];
    }

    public function getStatusTextAttr($value, $data)
    {
        $value = $value ? $value : $data['status'];
        $list = $this->getStatusList();
        return isset($list[$value]) ? $list[$value] : '';
    }
    

    public function admin()
    {
        return $this->belongsTo('app\admin\model\Admin', 'userid', 'id', [], 'LEFT')->setEagerlyType(0);
    }


    public function department()
    {
        return $this->belongsTo('app\admin\model\AuthDepartment', 'department_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    /**
     * YangLiu  获取零售店建设积分
     * @param $WeekId  周日期 ID
     * @return float|int  返回积分数
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public static function GetRetailStoreConstructionPoints($WeekId)
    {
        $list = array_column(self::where('week_id','=',$WeekId)->field('status,count(status) as number')->group('status')->select()->toArray(),'number','status');
        if($list)
        {
            //铺货最多三家  最多30分
            $puhuo = ($list[1] >= 3) ? 30 : $list[1] * 10;
            //现货最多三家  最高分60
            $xiankuan = ($list[2] >= 1) ? 20 : $list[2] * 20;
            //最多只能3家，最多60分
            $number = (($puhuo + $xiankuan ) >= 60) ? 60 : ($puhuo + $xiankuan)  ;
        }else{
            //没有零售店建设减十分
            $number = -10;
        }
        return $number;
    }
}
